package io.fft.flight.modules.flight.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.fft.flight.common.annotation.EntityFieldDefault;
import lombok.Data;

import java.util.Date;

/**
 * 政策信息
 *
 * @author likailun kellenli30541@gmail.com
 * @since 1.0.0 2024-06-19
 */
@Data
@TableName("t_order_policy")
public class OrderPolicyEntity {

    /**
     * 主键
     */
    private Long id;
    /**
     * 订单编号
     */
    private String orderNo;
    /**
     * 航空公司二字码
     */
    @EntityFieldDefault()
    private String airline;
    /**
     * 航空公司
     */
    @EntityFieldDefault()
    private String airlineName;
    /**
     * 适用班期类型
     */
    @EntityFieldDefault()
    private String applyFlightType;
    /**
     * 适用班期类型文本
     */
    @EntityFieldDefault()
    private String applyFlightTypeText;
    /**
     * 舱位
     */
    @EntityFieldDefault()
    private String cabin;
    /**
     * 航程类型 1-单程 2-往返
     */
    @EntityFieldDefault(value = "0")
    private Integer flightType;
    /**
     * 留钱
     */
    @EntityFieldDefault()
    private String keepMoney;
    /**
     * 返点
     */
    @EntityFieldDefault()
    private String rebate;
    /**
     * 销售日期结束
     */
    private Date saleEndDate;
    /**
     * 销售日期开始
     */
    private Date saleStartDate;
    /**
     * 快照政策编号
     */
    @EntityFieldDefault()
    private String snapshotPolicyNo;

    @EntityFieldDefault(value = "0")
    private Integer snapshotPolicyType;
    /**
     * 出票时限方式
     */
    @EntityFieldDefault(value = "0")
    private Integer ticket;
    /**
     * 出票方式
     */
    @EntityFieldDefault(value = "0")
    private Integer ticketChannels;
    /**
     * 出票方式文本
     */
    @EntityFieldDefault()
    private String ticketChannelsText;
    /**
     * 出票时限方式文本 1-支付后 2-起飞前
     */
    @EntityFieldDefault()
    private String ticketText;
    /**
     * 票证类型
     */
    @EntityFieldDefault()
    private String ticketType;
    /**
     * 出票时限
     */
    @EntityFieldDefault()
    private String timeLimit;
    /**
     * 时间单位
     */
    @EntityFieldDefault()
    private String timeUnit;
    /**
     * 外部政策id【暂未使用】
     */
    @EntityFieldDefault()
    private String externalPolicyId;
    /**
     * office 号
     */
    @EntityFieldDefault()
    private String officeNo;
    /**
     * 政策其他说明
     */
    @EntityFieldDefault()
    private String otherContents;
    /**
     * 创建者
     */
    @TableField(fill = FieldFill.INSERT)
    private Long creator;
    /**
     * 创建时间
     */
    private Date createDate;
    /**
     * 更新人
     */
    private Long updater;
    /**
     * 更新时间
     */
    private Date updateDate;
}